package com.zenithmind.gateway.auth;

import org.springframework.http.server.reactive.ServerHttpRequest;

/**
 * 请求头设置器接口
 * 遵循接口隔离原则：专门负责设置请求头信息
 * 遵循单一职责原则：只负责请求头的设置逻辑
 */
public interface RequestHeaderSetter {
    
    /**
     * 为请求设置用户信息头
     * @param requestBuilder 请求构建器
     * @param userInfo 用户信息
     */
    void setUserInfoHeaders(ServerHttpRequest.Builder requestBuilder, UserInfoParser.UserInfo userInfo);
    
    /**
     * 为请求设置网关验证头
     * @param requestBuilder 请求构建器
     */
    void setGatewayVerificationHeaders(ServerHttpRequest.Builder requestBuilder);
    
    /**
     * 为公开路径设置访客信息头
     * @param requestBuilder 请求构建器
     */
    void setGuestInfoHeaders(ServerHttpRequest.Builder requestBuilder);
}
